ESPnet による音声認識入門 ~ESPnet Model Zoo 編~
https://tech.retrieva.jp/entry/2020/12/23/170645
今回は、日本語話し言葉コーパス(CSJ)で学習した日本語音声認識モデル kan-bayashi/csj_asr_train_asr_transformer_raw_char_sp_valid.acc.ave を使ってみます。
日本語話し言葉コーパス(CSJ)
このモデルはサンプリングレートが 16000 Hz の音声に対応しています。
sample.wav
坊っちゃんの一節
macOSのsayコマンドでwavファイルを保存したい
code:say.sh
$ say 親譲りの無鉄砲で子供の時から損ばかりしている -o sample.wav --data-format=LEF32@16000
code:python
>> from espnet_model_zoo.downloader import ModelDownloader
>> from espnet2.bin.asr_inference import Speech2Text
>> from scipy.io import wavfile
>> d = ModelDownloader()
>> speech2text = Speech2Text(**d.download_and_unpack("kan-bayashi/csj_asr_train_asr_transformer_raw_char_sp_valid.acc.ave"))
>> type(speech2text)
<class 'espnet2.bin.asr_inference.Speech2Text'>
>> sampling_rate, audio_array = wavfile.read("sample.wav")
<stdin>:1: WavFileWarning: Chunk (non-data) not understood, skipping it.
>> sampling_rate
16000
>> audio_array.shape
(73781,)
>> audio_array.dtype
dtype('float32')
>> nbests = speech2text(audio_array)
>> text, tokens, *_ = nbests0
>> text
'親譲りの無鉄砲で子供の時から損ばかりしている'
https://espnet.github.io/espnet/_gen/espnet2.bin.html#espnet2.bin.asr_inference.Speech2Text
ModelDownloader & download_and_unpackメソッド
https://github.com/espnet/espnet_model_zoo#instruction-for-modeldownloader
sampling rateを変えてASRする例